function parseFormData(ctx) {
    const contentType = ctx.headers['content-type'];
    if (!contentType || !contentType.startsWith('multipart/form-data')) {
        return null;
    }

    const boundary = contentType.split('boundary=')[1];
    const body = ctx.req;

    let parts = {};
    let currentPart = null;

    body.on('data', (chunk) => {
        const partBuffer = Buffer.concat([Buffer.from(chunk)]);

        // 在这里解析multipart表单并提取文件部分
        if (currentPart) {
            currentPart.push(partBuffer);
        }

        if (partBuffer.indexOf(`--${boundary}`) === 0) {
            // 开始解析一个新的部分
            currentPart = [];
        }
    });

    body.on('end', () => {
        // 文件上传结束后进行处理
        // 你可以在这里进一步处理文件
    });

    return parts;
}

// 通过流进行管道传输
function streamPipeline(source, destination) {
    return new Promise((resolve, reject) => {
        source.pipe(destination);
        source.on('end', resolve);
        source.on('error', reject);
    });
}

module.exports={
    parseFormData,
    streamPipeline
}
